/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.platform.model.dto.agent;

import cn.hutool.core.collection.CollectionUtil;
import com.medusa.gruul.common.core.constant.CommonConstants;
import com.medusa.gruul.common.core.exception.ServiceException;
import com.medusa.gruul.common.core.validator.ValidatorUtils;
import com.medusa.gruul.common.core.validator.group.AddGroup;
import com.medusa.gruul.common.core.validator.group.UpdateGroup;
import com.medusa.gruul.platform.model.dto.CardBankDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author whh
 * @description
 * @data: 2020/11/1
 */
@Data
public class AgentAddChannelDto {


    @ApiModelProperty(value = "代理id，新增的时候不需要")
    @NotNull(message = "代理id不能为空", groups = {UpdateGroup.class})
    private Long id;

    @ApiModelProperty(value = "账号")
    @NotBlank(message = "账号不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String account;

    @ApiModelProperty(value = "密码")
    @NotBlank(message = "密码不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String pwd;

    @ApiModelProperty(value = "联系人")
    @NotBlank(message = "联系人不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String linkName;

    @ApiModelProperty(value = "联系电话")
    @NotBlank(message = "联系电话不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String phone;

    @ApiModelProperty(value = "所在地区")
    @NotBlank(message = "所在地区不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String region;

    @ApiModelProperty(value = "联系地址")
    @NotBlank(message = "联系地址不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String address;

    @ApiModelProperty(value = "邮箱地址")
    private String email;

    @ApiModelProperty(value = "代理到期时间")
    @NotNull(message = "代理期限不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private LocalDateTime nextDueTime;

    @ApiModelProperty(value = "银行卡相关信息")
    @NotNull(message = "银行卡信息不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private @Valid CardBankDto bankInfo;



}
